package com.qili.service.base;

import com.qili.base.service.BaseService;
import com.qili.entity.base.BaseStageZx;
import com.qili.entity.base.dto.BaseStageMileDTO;

import java.util.List;

/**
 * @author zhaoyongke
 * @date 2020/10/27  基础阶段表 服务
 * @description
 */
public interface BaseStageZxService extends BaseService<BaseStageZx,String>{

    //List<BaseStageZx> selectByProjectTypeNo(BaseStageZx baseStage);

    /**
    * @Author:Zhangshuo
    * @Description:根据项目类型获取阶段
    * @param baseStageDto
    * @Date:17:31 2020/11/19
    */
    List<BaseStageMileDTO> selectStageMileByProjectType(BaseStageMileDTO baseStageDto);

    /**
     * @Author:Zhangshuo
     * @Description:
     * @param id
     * @Date:17:31 2020/11/19
     */
    int delStage(String id);
    /**
     * @Author:Zhangshuo
     * @Description:
     * @param baseStage
     * @Date:17:31 2020/11/19
     */
    int updateStage(BaseStageZx baseStage);
    /**
     * @Author:Zhangshuo
     * @Description:
     * @param baseStage
     * @Date:17:31 2020/11/19
     */
    int addStage(BaseStageZx baseStage);

    List<BaseStageZx> selectBaseStageListByProjectTypeNo(String projectTypeNo,String dictTypeCode);

    /**
     * @Author:liuyang
     * @Description:        判断某项目阶段是否存在
     * @param baseStage     需要判断的项目阶段
     * @return              存在返回true,否则返回false
     */
    boolean ifExited(BaseStageZx baseStage);

    /**
     * @Author:liuyang
     * @Description:        验证是否可以更改为某项目阶段
     * @param baseStage     期望修改为的项目阶段
     * @return
     */
    boolean checkCanEdit(BaseStageZx baseStage);
}
